home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga3.lha / PLAY_MUSIC_bas < prev    next >
Text File  |  1998-02-12  |  3KB  |  63 lines

  1. 100 REMark MUSIC PLAYER - v1.03
  2. 110 REMark Mark J Swift - 26 Feb 94
  3. 120 REMark Simple graphics added SNG
  4. 130 :
  5. 140 REMark BEEP <pitch> gives frequency
  6. 150 REMark approx to 11447/(10.6+<pitch>)
  7. 160 :
  8. 170 PLAY_MUSIC(6E-2)
  9. 180 STOP
  10. 190 :
  11. 9000 REMark This program is FREEWARE, do
  12. 9010 REMark with it as you will.
  13. 9020 REMark To remove graphics, delete the
  14. 9030 REMark lines marked: "-gfx-".
  15. 9040 :
  16. 9050 DEFine PROCedure PLAY_MUSIC(tempo)
  17. 9060  LOCal Note$(3),dur,pitch,getdata,loop,poll
  18. 9070  OPEN#3;"Con_272x134a120x60":WINDOW#3;272,134,120,60:PAPER#3;0:INK#3;7:CLS#3:BORDER#3;3,2:BORDER#3;2,0:BORDER#3;1,2:WINDOW#3;256,120,128,68:CSIZE#3;3,1:PRINT#3;"PLAY_MUSIC v1.03":CSIZE#3;2,0:AT#3;11,0:INK#3;4:PRINT#3;"Press <ENTER> to quit";:WINDOW#3;256,86,128,90:PAPER#3;2:CLS#3:REMark -gfx-
  19. 9080  REPeat loop
  20. 9090   RESTORE 9300
  21. 9100   REPeat getdata
  22. 9110    READ Note$,dur
  23. 9120    IF Note$=="QIT" THEN EXIT loop
  24. 9130    IF Note$=="LUP" THEN EXIT getdata
  25. 9140    IF (KEYROW(1)&&1) THEN EXIT loop
  26. 9150    pitch=INT(11447/((55*2^(Note$(3)-1))*(EXP(LN(2)*((Note$(1 TO 2)INSTR"C C#D D#E F F#G G#A A#B "-19)/2)/12)))-10.6+.5)
  27. 9160    REPeat poll : IF NOT BEEPING THEN EXIT poll
  28. 9170    BEEP dur*tempo*1000000/72,pitch
  29. 9180    SCROLL#3;dur+1:BLOCK#3;8,dur,pitch-9,0,7:REMark -gfx-
  30. 9190   END REPeat getdata
  31. 9200  END REPeat loop
  32. 9210  CLOSE#3: REMark -gfx-
  33. 9220 END DEFine 
  34. 9230 :
  35. 9240 REMark Store music in DATA statements
  36. 9250 REMark ie DATA note,dur,note,dur,etc.
  37. 9260 REMark Lowest note F 1, highest B 4.
  38. 9270 REMark Use # symbol for sharp notes,
  39. 9280 REMark i.e. "F#1", "A#2" etc.
  40. 9290 :
  41. 9300 DATA "G 3",2,"A 3",2
  42. 9310 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
  43. 9320 DATA "A 3",4,"B 3",4,"G 3",4,"G 2",2,"A 2",2
  44. 9330 DATA "B 2",4,"B 2",4,"B 2",4,"A 2",2,"G 2",2
  45. 9340 DATA "B 2",4,"B 2",4,"B 2",4,"G 3",2,"A 3",2
  46. 9350 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
  47. 9360 DATA "A 3",4,"B 3",4,"G 3",4,"G 2",2,"A 2",2
  48. 9370 DATA "B 2",4,"B 2",4,"B 2",4,"A 2",2,"G 2",2
  49. 9380 DATA "B 2",12,"B 3",4
  50. 9390 DATA "B 3",6,"C 4",2,"D 4",4,"B 3",4
  51. 9400 DATA "E 4",4,"E 4",4,"D 4",4,"B 3",4
  52. 9410 DATA "B 3",6,"C 4",2,"D 4",4,"B 3",4
  53. 9420 DATA "A 3",4,"G 3",4,"F#3",4,"G 3",2,"A 3",2
  54. 9430 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
  55. 9440 DATA "A 3",4,"B 3",4,"D 3",4,"G 3",2,"A 3",2
  56. 9450 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"G 3",2
  57. 9460 DATA "A 3",2,"G 3",2,"A 3",2,"B 3",2,"C 4",4,"G 3",2,"A 3",2
  58. 9470 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"G 3",2
  59. 9480 DATA "A#3",8,"G 3",4,"A 3",2,"G 3",2
  60. 9490 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"F#3",2
  61. 9500 DATA "G 3",12
  62. 9510 DATA "LUP",0
  63.